<?php

/**
 * curl请求
 * @param  string  $curl   请求地址
 * @param  boolean $https  是否SSL
 * @param  string  $method 请求方式
 * @param  array   $data   POST请求数据
 * @return string
 */
function _curl($curl,$https=true,$method="get",$data=[],$headers=[]){
    $ch=curl_init();
    curl_setopt($ch, CURLOPT_URL, $curl);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    if($https){
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
    }else{
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    }
    if($method=="post"){
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    }
    if(!empty($headers)){
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    }
    $http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $content=curl_exec($ch);
    curl_close($ch);
    return $content;
}


/**
 * 验证签名 token 确保为后台服务器的指令
 * @param  array  $data 接收到的后台数据
 * @param  string $pwd  秘钥
 * @return boolean
 */
function checkToken(&$data,$pwd){
    if(empty($data)||!is_array($data)||!isset($data['event'])||!isset($data['token'])){
        return false;
    }
    $token=$data['token'];
    unset($data['token']);
    return md5($pwd)===$token;
}

/**
 * 构建成功操作返回信息
 * @param string msg 成功提示信息
 * @param integer code 成功码 0
 * @param mixed data 额外数据
 */
function success($msg='操作成功!',$code=0,$data=[]){
    return json_encode([
        'success'=>true,
        'msg'=>$msg,
        'code'=>$code,
        'data'=>$data,
    ]);
}
/**
 * 构建错误操作返回信息
 * @param string msg 错误提示信息
 * @param integer code 错误码 非0
 * @param mixed data 额外数据
 */
function error($msg='操作失败!',$code=1,$data=[]){
    return json_encode([
        'success'=>false,
        'msg'=>$msg,
        'code'=>$code,
        'data'=>$data,
    ]);
}